/*
 * sso
 */
package com.opensso.sessioin.service;

/**
 * 域名日志
 *
 * @author helixin
 */
public interface SessionSV {


    /**
     * 创建会话
     *
     * @param account    账户
     * @param password   密码
     * @param clientIp   客户端ip
     * @param serverIp   服务端ip
     * @param language   语言
     * @param requestUrl 请求地址
     * @param domain     域名
     * @return token
     */
    String build(String account, String password, String clientIp, String serverIp, String language, String requestUrl, String domain);

    /**
     * 刷新token
     *
     * @param account    账户
     * @param sessionKey sessionKey
     * @param clientIp   客户端ip
     * @param serverIp   服务端ip
     * @param language   语言
     * @param requestUrl 请求地址
     * @param apiKey     apikey
     * @return token
     */
    String refresh(String account, String sessionKey, String clientIp, String serverIp, String language, String requestUrl, String apiKey);

    /**
     * 刷新token
     *
     * @param account    账户
     * @param sessionKey sessionKey
     * @param clientIp   客户端ip
     * @param serverIp   服务端ip
     * @param language   语言
     * @param requestUrl 请求地址
     * @param apiKey     apikey
     * @return true/false
     */
    boolean invalidate(String account, String sessionKey, String clientIp, String serverIp, String language, String requestUrl, String apiKey);

}
